<template>
  <a-card :bordered="false">
    <!-- 查询区域 -->
    <div class="table-page-search-wrapper">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24">
          <a-col :span="4" v-has="'isps:select'">
            <a-form-item label="城市服务商" style="margin-right: 10px">
              <serveSelect @selectClick="selectClick" :value="queryParam.agencyCode"></serveSelect>
            </a-form-item>
          </a-col>
          <a-col :span="6">
            <a-form-item label="订单编号">
              <a-input placeholder="请输入标题" v-model="queryParam.orderNo"></a-input>
            </a-form-item>
          </a-col>
          <!-- <a-col :span="6">
            <a-form-item label="发布人">
              <a-input placeholder="请输入发布人" v-model="queryParam.sender"></a-input>
            </a-form-item>
          </a-col> -->

          <a-col :span="8">
            <span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
            </span>
          </a-col>
        </a-row>
      </a-form>
    </div>

    <div class="table-operator">
      <a-button type="primary" @click="readAll" icon="book">全部标注已读</a-button>
      <a-dropdown v-if="selectedRowKeys.length > 0">
        <a-menu slot="overlay">
          <a-menu-item key="1" @click="batchDel"><a-icon type="delete" />删除</a-menu-item>
        </a-menu>
        <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
      </a-dropdown>
    </div>

    <a-table
      ref="table"
      size="default"
      bordered
      rowKey="id"
      :columns="columns"
      :dataSource="dataSource"
      :pagination="ipagination"
      :loading="loading"
      :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
      @change="handleTableChange"
    >
      <span slot="action" slot-scope="text, record">
        <a v-if="record.status == 0" @click="showAnnouncement(record)">阅读</a>
        <a-divider v-if="record.status == 0" type="vertical" />
        <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
          <a>删除</a>
        </a-popconfirm>
      </span>
    </a-table>
    <show-announcement ref="ShowAnnouncement"></show-announcement>
    <dynamic-notice ref="showDynamNotice" :path="openPath" :formData="formData" />
  </a-card>
</template>

<script>
import { filterObj } from '@/utils/util'
import { getAction, putAction } from '@/api/manage'
import ShowAnnouncement from '@/components/tools/ShowAnnouncement'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import DynamicNotice from '../../components/tools/DynamicNotice'
import serveSelect from '@/components/serveSelect.vue'

export default {
  name: 'UserAnnouncementList',
  mixins: [JeecgListMixin],
  components: {
    DynamicNotice,
    ShowAnnouncement,
    serveSelect
  },
  data() {
    return {
      description: '系统通告表管理页面',
      queryParam: {},
      columns: [
        {
          title: '技师编号',
          align: 'center',
          dataIndex: 'coachId',
        },
        {
          title: '服务技师',
          align: 'center',
          dataIndex: 'coachName',
        },
        {
          title: '订单编号',
          align: 'center',
          dataIndex: 'orderNo',
        },
        {
          title: '消息类型',
          align: 'center',
          dataIndex: 'type',
          customRender: function (text, record) {
            switch (record.type) {
              case 0:
                return '订单退款'
                break
              case 1:
                return '新预约订单'
                break
              case 2:
                return '技师求救'
                break
              case 3:
                return '新加钟订单'
                break
              case 4:
                return '新升级订单'
                break
              case 5:
                return '物料购买'
                break
              case 6:
                return '新待支付订单'
                break
            }
          },
        },
        {
          title: '消息内容',
          align: 'center',
          dataIndex: 'msg',
        },
        {
          title: '发布时间',
          align: 'center',
          dataIndex: 'createTime',
        },
        // {
        //   title: '优先级',
        //   align: 'center',
        //   dataIndex: 'priority',
        //   customRender: function (text) {
        //     if (text == 'L') {
        //       return '低'
        //     } else if (text == 'M') {
        //       return '中'
        //     } else if (text == 'H') {
        //       return '高'
        //     } else {
        //       return text
        //     }
        //   },
        // },
        {
          title: '阅读状态',
          align: 'center',
          dataIndex: 'status',
          customRender: function (text) {
            if (text == '0') {
              return '未读'
            } else if (text == '1') {
              return '已读'
            } else {
              return text
            }
          },
        },
        {
          title: '操作',
          dataIndex: 'action',
          align: 'center',
          scopedSlots: { customRender: 'action' },
        },
      ],
      url: {
        list: '/message/list',
        editCementSend: '/message/read',
        readAllMsg: '/message/allRead',
        delete: '/message/delete',
        deleteBatch: '/message/deleteBatch',
      },
      loading: false,
      openPath: '',
      formData: '',
    }
  },
  methods: {
    handleDetail: function (record) {
      this.$refs.sysAnnouncementModal.detail(record)
      this.$refs.sysAnnouncementModal.title = '查看'
    },
    showAnnouncement(record) {
      var that = this
      getAction(this.url.editCementSend, { id: record.id }).then((res) => {
        that.$message.success(res.message)
        that.loadData()
        that.syncHeadNotic()
      })
      // if (record.openType === 'component') {
      //   this.openPath = record.openPage
      //   this.formData = { id: record.busId }
      //   this.$refs.showDynamNotice.detail()
      // } else {
      //   this.$refs.ShowAnnouncement.detail(record)
      // }
    },
    syncHeadNotic(anntId) {
      getAction('sys/annountCement/syncNotic', { anntId: anntId })
    },
    selectClick(value) {
      this.queryParam.agencyCode = value
      this.searchQuery()
    },
    readAll() {
      var that = this
      that.$confirm({
        title: '确认操作',
        content: '是否全部标注已读?',
        onOk: function () {
          getAction(that.url.readAllMsg).then((res) => {
            if (res.success) {
              that.$message.success(res.message)
              that.loadData()
              that.syncHeadNotic()
            }
          })
        },
      })
    },
  },
}
</script>
<style scoped>
.ant-card-body .table-operator {
  margin-bottom: 18px;
}
.anty-row-operator button {
  margin: 0 5px;
}
.ant-btn-danger {
  background-color: #ffffff;
}
z .ant-modal-cust-warp {
  height: 100%;
}
.ant-modal-cust-warp .ant-modal-body {
  height: calc(100% - 110px) !important;
  overflow-y: auto;
}
.ant-modal-cust-warp .ant-modal-content {
  height: 90% !important;
  overflow-y: hidden;
}
</style>
